home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib18.dsk / STACK EM UP DEMO.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  88 lines

  1. 1  REM  **********************
  2. 2  REM  *  STACK EM UP DEMO  *
  3. 3  REM  *  BY KEVIN KILLION  *
  4. 4  REM  * COPYRIGHT (C) 1983 *
  5. 5  REM  * BY MICROSPARC, INC *
  6. 6  REM  * LINCOLN, MA. 01773 *
  7. 7  REM  **********************
  8. 10  REM  THIS PROGRAM SHOWS READERSHIP FOR SEVERAL MAGAZINES, ILLUSTRATING THIS AS A LAYER OF BLOCKS
  9. 30 NB = 5: REM  5 MAGAZINES
  10. 40 :
  11. 50  REM  OCCASIONAL BUYERS
  12. 60  DATA  140180,74090,71660,44740,40630,200000
  13. 70  FOR I = 1 TO NB: READ L(I): NEXT : READ LM
  14. 80 :
  15. 85  REM  ISSUES PER YEAR PER READER
  16. 90  DATA  4.5,6,8,2.5,3,12
  17. 95  FOR I = 1 TO NB: READ R(I): NEXT : READ RM
  18. 100 :
  19. 110  REM  DO IT!
  20. 120 :
  21. 130  HOME : VTAB 22: PRINT "** COPYRIGHT 1983 BY MICROSPARC, INC. **": VTAB 1: HGR : GOSUB 8000
  22. 140  END : REM  END OF USER PROGRAM
  23. 8000 :
  24. 8010 :
  25. 8020  REM  BLOCK DRAWING ROUTINE. ENTER WITH: NB  - # BLOCKS. L() - LEFT VALUES. R() - RIGHT VALUES. LM  - LEFT MAX VALUE. RM  - RIGHT MAX VALUE
  26. 8030 XBASE = 139
  27. 8035 YBASE = 160
  28. 8040 MAX = 120
  29. 8050 HT = 15: REM  HEIGHT
  30. 8060 HS = 10: REM  SEPARATION
  31. 8070 BLACK = 4
  32. 8072 OVERHUE = 6
  33. 8074 SIDEHUE = 5
  34. 8090 :
  35. 8100  FOR I = 1 TO NB
  36. 8105 :
  37. 8110 L = L(I)/LM
  38. 8115 L = MAX *L
  39. 8120 LX = XBASE -L
  40. 8125 LY = YBASE -L/2
  41. 8128 :
  42. 8130 R = R(I)/RM
  43. 8135 R = MAX *R
  44. 8140 RX = XBASE +R
  45. 8145 RY = YBASE -R/2
  46. 8150 :
  47. 8151 :
  48. 8160  REM  FIND TOP, SEE IF OFF SCREEN
  49. 8165 :
  50. 8170 TY = (L +R)/2 +HT:TY = YBASE -TY
  51. 8180  IF TY <0  THEN  PRINT "BLOCK "I" WOULD BE OFF SCREEN -- NOT SHOWN": GOTO 8400
  52. 8190 TX = XBASE -L +R
  53. 8200 :
  54. 8205 :
  55. 8210  REM  COLOR THE SIDES
  56. 8215 :
  57. 8220  HCOLOR= SIDEHUE
  58. 8230  FOR Y = 0 TO HT
  59. 8240  HPLOT LX,LY -Y TO XBASE,YBASE -Y TO RX,RY -Y
  60. 8250  NEXT 
  61. 8260 :
  62. 8265 :
  63. 8270  REM  COLOR THE TOP
  64. 8271 :
  65. 8275  HCOLOR= OVERHUE
  66. 8280  FOR Y = TY TO YBASE -HT
  67. 8290 AA = LX +2 * ABS(LY -HT -Y)
  68. 8300 ZZ = RX -2 * ABS(RY -HT -Y)
  69. 8310  IF ZZ >(AA)  THEN  HPLOT AA,Y TO ZZ,Y
  70. 8320  NEXT 
  71. 8330 :
  72. 8335 :
  73. 8340  REM  BLACKEN EDGES
  74. 8345 :
  75. 8350  HCOLOR= BLACK
  76. 8360  HPLOT XBASE,YBASE -HT TO LX,LY -HT TO TX,TY TO RX,RY -HT TO XBASE,YBASE TO RX,RY
  77. 8370  HPLOT XBASE,YBASE -HT TO XBASE,YBASE
  78. 8371 L = 2 * INT(LX/2) -1
  79. 8372  HPLOT L,LY -HT TO L,LY
  80. 8373 R = 2 * INT(RX/2) +1
  81. 8374  HPLOT R,RY -HT TO R,RY
  82. 8380 :
  83. 8385 :
  84. 8390  REM  ADVANCE
  85. 8391 :
  86. 8395 YBASE = YBASE -(HT +HS)
  87. 8400  NEXT I
  88. 8410  RETURN